﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Capa_Entidad;
using Capa_Negocio_Interface;
using Capa_Negocio_Facade;

public partial class Clinica_wfExamenActividad : System.Web.UI.Page
{
    private IFacadeRegistrarAtencion objFacadeAtencion = null;
    private static String operacion = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.IsPostBack == false)
        {
            if (Session["Ate_Operacion"] == null)
            {
                Response.Redirect("wfAtencionListado.aspx");
                return;
            }


            if (Session["Ate_Operacion"].ToString() == "M") //MODIFICAR
            {
                operacion = "M";
                this.Listar();
            }
            else if (Session["Ate_Operacion"].ToString() == "C") {
                operacion = "N";
            
            }

        }

    }


    private void Listar()
    {
        try
        {
            objFacadeAtencion = new FacadeRegistrarAtencion();
            List<ATE_EXAMEN_ACTIVIDAD> list = objFacadeAtencion.ListarATE_EXAMEN_ACTIVIDAD(Convert.ToInt32(Session["IdAtencion"]));
            if (list.Count() == 0)
            {
                operacion = "N";
                return;
            }
            txtPresionArterialFV.Text = list[0].EAU_PRESION_ARTERIAL_FUNC_VITAL.ToString();
            txtFrecuenciaCardiacaFV.Text = list[0].EAU_FRECUENCIA_CARDIACA_FUNC_VITAL.ToString();
            txtPulsoFV.Text = list[0].EAU_PULSO_FUNC_VITAL.ToString();
            txtFuncionesRespiratoriaFV.Text = list[0].EAU_FRECUENCIA_RESPIRATORIA_FUNC_VITAL.ToString();
            txtTemperaturaFV.Text = list[0].EAU_TEMPERATURA_FUNC_VITAL.ToString();
            rbtEstadoNutricional.Value = list[0].EAU_FLAG_ESTADO_NUTRICIONAL.ToString();
            txtTalla.Text = list[0].EAU_TALLA.Value.ToString();
            txtPerimetroCabeza.Text = list[0].EAU_PERIMETRO_CABEZA.ToString();
            txtPerimetroBraquial.Text = list[0].EAU_PERIMETRO_BRAQUIAL.ToString();
            rbtEstadoHidratacion.Value = list[0].EAU_FLAG_ESTADO_HIDRATACION.ToString();
            txtExamenCabeza.Text = list[0].EAU_EXAMEN_CABEZA;
            txtExamenCuello.Text = list[0].EAU_EXAMEN_CUELLO;
            txtMorfologiaTorax.Text = list[0].EAU_MORFOLOGIA_TORAX;
            txtFuncionesVentilatoriaTorax.Text = list[0].EAU_FUNCION_VENTILATORIA_TORAX;
            txtExamenCorazon.Text = list[0].EAU_EXAMEN_CORAZON;
            txtExamenAbdomen.Text = list[0].EAU_EXAMEN_ABDOMEN;
            txtExamenGenitourinario.Text = list[0].EAU_EXAMEN_GENITOURINARIO;
            txtMorfologiaColumnaVertebral.Text = list[0].EAU_MORFOLOGIA_COLUMNA_VERTEBRAL;
            txtFuncionalidadColumnaVertebral.Text = list[0].EAU_FUNCIONALIDAD_COLUMNA_VERTEBRAL;
            txtExamenExtremidades.Text = list[0].EAU_EXAMEN_EXTREMIDADES;
          
            if (list[0].EAU_FLAG_DESPIERTO_NEUROLOGICO == true)
            {
                rbtDespierto.Value = "S";
            }
            else
            {
                rbtDespierto.Value = "N";
            }

            if (list[0].EAU_FLAG_DIALOGO_INADECUADO == true)
            {
                rbtDialogoInadecuado.Value = "S";
            }
            else
            {
                rbtDialogoInadecuado.Value = "N";
            }

            if (list[0].EAU_FLAG_TIEMPO_ORIENTACION == true)
            {
                rbtTiempoOrientacion.Value = "S";
            }
            else
            {
                rbtTiempoOrientacion.Value = "N";
            }

            if (list[0].EAU_FLAG_LUGAR_ORIENTACION == true)
            {
                rbtLugar.Value = "S";
            }
            else
            {
                rbtLugar.Value = "N";
            }


            rbtFuncionMotora.Value = list[0].EAU_FLAG_FUNCION_MOTORA_NEUROLOGICO;




        }
        catch (Exception)
        {

            throw;
        }


    }
    private void Registrar()
    {
        objFacadeAtencion = new FacadeRegistrarAtencion();
        try
        {

            ATE_EXAMEN_ACTIVIDAD actividad = new ATE_EXAMEN_ACTIVIDAD();
            actividad.ATE_ID_ATENCION = Convert.ToInt32(Session["IdAtencion"]);
            actividad.EAU_PRESION_ARTERIAL_FUNC_VITAL = txtPresionArterialFV.Text == String.Empty ? 0 : Convert.ToInt32(txtPresionArterialFV.Text);
            actividad.EAU_FRECUENCIA_CARDIACA_FUNC_VITAL = txtFrecuenciaCardiacaFV.Text == String.Empty ? 0 : Convert.ToInt32(txtFrecuenciaCardiacaFV.Text);
            actividad.EAU_PULSO_FUNC_VITAL = txtPulsoFV.Text == String.Empty ? 0 : Convert.ToInt32(txtPulsoFV.Text);
            actividad.EAU_FRECUENCIA_RESPIRATORIA_FUNC_VITAL = txtFuncionesRespiratoriaFV.Text == String.Empty ? 0 : Convert.ToInt32(txtFuncionesRespiratoriaFV.Text);
            actividad.EAU_TEMPERATURA_FUNC_VITAL = txtTemperaturaFV.Text == String.Empty ? 0 : Convert.ToInt32(txtTemperaturaFV.Text);
            actividad.EAU_FLAG_ESTADO_NUTRICIONAL = rbtEstadoNutricional.SelectedItem.Value.ToString();
            actividad.EAU_TALLA = txtTalla.Text == String.Empty ? 0 : Convert.ToDecimal(txtTalla.Text);
            actividad.EAU_PERIMETRO_CABEZA = txtPerimetroCabeza.Text == String.Empty ? 0 : Convert.ToDecimal(txtPerimetroCabeza.Text);
            actividad.EAU_PERIMETRO_BRAQUIAL = txtPerimetroBraquial.Text == String.Empty ? 0 : Convert.ToDecimal(txtPerimetroBraquial.Text);
            actividad.EAU_FLAG_ESTADO_HIDRATACION = rbtEstadoHidratacion.SelectedItem.Value.ToString();
            actividad.EAU_EXAMEN_CABEZA = txtExamenCabeza.Text;
            actividad.EAU_EXAMEN_CUELLO = txtExamenCuello.Text;
            actividad.EAU_MORFOLOGIA_TORAX = txtMorfologiaTorax.Text;
            actividad.EAU_FUNCION_VENTILATORIA_TORAX = txtFuncionesVentilatoriaTorax.Text;
            actividad.EAU_EXAMEN_CORAZON = txtExamenCorazon.Text;
            actividad.EAU_EXAMEN_ABDOMEN = txtExamenAbdomen.Text;
            actividad.EAU_EXAMEN_GENITOURINARIO = txtExamenGenitourinario.Text;
            actividad.EAU_MORFOLOGIA_COLUMNA_VERTEBRAL = txtMorfologiaColumnaVertebral.Text;
            actividad.EAU_FUNCIONALIDAD_COLUMNA_VERTEBRAL = txtFuncionalidadColumnaVertebral.Text;
            actividad.EAU_EXAMEN_EXTREMIDADES = txtExamenExtremidades.Text;
            if (rbtDespierto.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_DESPIERTO_NEUROLOGICO = true;
            }
            else
            {
                actividad.EAU_FLAG_DESPIERTO_NEUROLOGICO = false;
            }

            if (rbtDialogoInadecuado.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_DIALOGO_INADECUADO = true;
            }
            else
            {
                actividad.EAU_FLAG_DIALOGO_INADECUADO = false;
            }

            if (rbtTiempoOrientacion.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_TIEMPO_ORIENTACION = true;
            }
            else
            {
                actividad.EAU_FLAG_TIEMPO_ORIENTACION = false;
            }

            if (rbtLugar.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_LUGAR_ORIENTACION = true;
            }
            else
            {
                actividad.EAU_FLAG_LUGAR_ORIENTACION = false;
            }
            actividad.EAU_FLAG_FUNCION_MOTORA_NEUROLOGICO = rbtFuncionMotora.SelectedItem.Value.ToString();

            if (objFacadeAtencion.InsertarATE_EXAMEN_ACTIVIDAD(actividad))
            {
                operacion = "M";
                lblMensaje.Text = "Se Registró Correctamente";
                pcMensaje.ShowOnPageLoad = true;
            }
            else {
                lblMensaje.Text = "ERROR";
                pcMensaje.ShowOnPageLoad = true;
            
            }

        }
        catch (Exception ex)
        {

            lblMensaje.Text = "ERROR"+ex.Message;
            pcMensaje.ShowOnPageLoad = true;
        }

    }


    private void Modificar()
    {
        objFacadeAtencion = new FacadeRegistrarAtencion();
        try
        {
            ATE_EXAMEN_ACTIVIDAD actividad = new ATE_EXAMEN_ACTIVIDAD();
            actividad.ATE_ID_ATENCION = Convert.ToInt32(Session["IdAtencion"]);
            actividad.EAU_PRESION_ARTERIAL_FUNC_VITAL = txtPresionArterialFV.Text == String.Empty ? 0 : Convert.ToInt32(txtPresionArterialFV.Text);
            actividad.EAU_FRECUENCIA_CARDIACA_FUNC_VITAL = txtFrecuenciaCardiacaFV.Text == String.Empty ? 0 : Convert.ToInt32(txtFrecuenciaCardiacaFV.Text);
            actividad.EAU_PULSO_FUNC_VITAL = txtPulsoFV.Text == String.Empty ? 0 : Convert.ToInt32(txtPulsoFV.Text);
            actividad.EAU_FRECUENCIA_RESPIRATORIA_FUNC_VITAL = txtFuncionesRespiratoriaFV.Text == String.Empty ? 0 : Convert.ToInt32(txtFuncionesRespiratoriaFV.Text);
            actividad.EAU_TEMPERATURA_FUNC_VITAL = txtTemperaturaFV.Text == String.Empty ? 0 : Convert.ToDecimal(txtTemperaturaFV.Text);
            actividad.EAU_FLAG_ESTADO_NUTRICIONAL = rbtEstadoNutricional.SelectedItem.Value.ToString();
            actividad.EAU_TALLA = txtTalla.Text == String.Empty ? 0 : Convert.ToDecimal(txtTalla.Text);
            actividad.EAU_PERIMETRO_CABEZA = txtPerimetroCabeza.Text == String.Empty ? 0 : Convert.ToDecimal(txtPerimetroCabeza.Text);
            actividad.EAU_PERIMETRO_BRAQUIAL = txtPerimetroBraquial.Text == String.Empty ? 0 : Convert.ToDecimal(txtPerimetroBraquial.Text);
            actividad.EAU_FLAG_ESTADO_HIDRATACION = rbtEstadoHidratacion.SelectedItem.Value.ToString();
            actividad.EAU_EXAMEN_CABEZA = txtExamenCabeza.Text;
            actividad.EAU_EXAMEN_CUELLO = txtExamenCuello.Text;
            actividad.EAU_MORFOLOGIA_TORAX = txtMorfologiaTorax.Text;
            actividad.EAU_FUNCION_VENTILATORIA_TORAX = txtFuncionesVentilatoriaTorax.Text;
            actividad.EAU_EXAMEN_CORAZON = txtExamenCorazon.Text;
            actividad.EAU_EXAMEN_ABDOMEN = txtExamenAbdomen.Text;
            actividad.EAU_EXAMEN_GENITOURINARIO = txtExamenGenitourinario.Text;
            actividad.EAU_MORFOLOGIA_COLUMNA_VERTEBRAL = txtMorfologiaColumnaVertebral.Text;
            actividad.EAU_FUNCIONALIDAD_COLUMNA_VERTEBRAL = txtFuncionalidadColumnaVertebral.Text;
            actividad.EAU_EXAMEN_EXTREMIDADES = txtExamenExtremidades.Text;
            if (rbtDespierto.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_DESPIERTO_NEUROLOGICO = true;
            }
            else
            {
                actividad.EAU_FLAG_DESPIERTO_NEUROLOGICO = false;
            }

            if (rbtDialogoInadecuado.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_DIALOGO_INADECUADO = true;
            }
            else
            {
                actividad.EAU_FLAG_DIALOGO_INADECUADO = false;
            }

            if (rbtTiempoOrientacion.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_TIEMPO_ORIENTACION = true;
            }
            else
            {
                actividad.EAU_FLAG_TIEMPO_ORIENTACION = false;
            }

            if (rbtLugar.SelectedItem.Value.ToString() == "S")
            {
                actividad.EAU_FLAG_LUGAR_ORIENTACION = true;
            }
            else
            {
                actividad.EAU_FLAG_LUGAR_ORIENTACION = false;
            }
            actividad.EAU_FLAG_FUNCION_MOTORA_NEUROLOGICO = rbtFuncionMotora.SelectedItem.Value.ToString();

            if (objFacadeAtencion.ModificarATE_EXAMEN_ACTIVIDAD(actividad))
            {

                lblMensaje.Text = "Se actualizó correctamente";
                pcMensaje.ShowOnPageLoad = true;
            }
            else {
                lblMensaje.Text = "ERROR";
                pcMensaje.ShowOnPageLoad = true;
            }



        }
        catch (Exception ex)
        {

            lblMensaje.Text = "ERROR"+ex.Message;
            pcMensaje.ShowOnPageLoad = true;
        }


    }






    private Boolean ValidaCampos() {

        bool campovacio = false;

        if (rbtEstadoNutricional.SelectedIndex == -1) {

            lblMensaje.Text = "Elige el estado nutricional";
           
            campovacio = true;
            return campovacio;
        }
        if (rbtEstadoHidratacion.SelectedIndex == -1) {

            lblMensaje.Text = "Elige el estado hidratacion";
          
            campovacio = true;
            return campovacio;
        }
        if (rbtDespierto.SelectedIndex == -1)
        {
            lblMensaje.Text = "Elige despierto";
           
            campovacio = true;
            return campovacio;

        } if (rbtDialogoInadecuado.SelectedIndex == -1)
        {
            lblMensaje.Text = "Elige dialogo adecuado";
           
            campovacio = true;
            return campovacio;

        } if (rbtFuncionMotora.SelectedIndex == -1)
        {

            lblMensaje.Text = "Elige funcion motora";
           
            campovacio = true;
            return campovacio;
        }
        if (rbtLugar.SelectedIndex == -1)
        {

            lblMensaje.Text = "Elige lugar";
           
            campovacio = true;
            return campovacio;
        }
        if(rbtTiempoOrientacion.SelectedIndex == -1){
            lblMensaje.Text = "Elige tiempo";
           
            campovacio = true;
            return campovacio;
        }


        return campovacio;

      
    }





    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        /* cambio de Ate_Operacion2 a Ate_Operacion*/
        if (Session["Ate_Operacion"].ToString() == "P")
        {
            return;
        }
        if (Session["IdCita"].ToString() != "")
        {
            objFacadeAtencion.ActualizarEstadoCita(Convert.ToInt16(Session["IdCita"].ToString()), 3);
        }
        if (operacion == "N")
        {
            if (ValidaCampos())
            {
                pcMensaje.ShowOnPageLoad = true;
                return;
            }
            else { 
            this.Registrar();  
            }
           
        }
        else if (operacion == "M")
        {
            if (ValidaCampos())
            {
                pcMensaje.ShowOnPageLoad = true;
                return;
            }
            this.Modificar();

        }
        else {
            return;
        }
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("wfAtencion.aspx");
    }
}